#ifndef NANE_WIN32READFILE__H
#   define  NANE_WIN32READFILE__H

#   include "nane/core/crt/Win32/Win32FileBase_.h"
#   include "nane/core/SubSystemProduct.h"

namespace nane
{
    class Win32ReadFile
        : public Win32FileBase
        , public RefCounted<IReadFile>
    {
    public:
        Win32ReadFile( FileSystem::Implementation* _creator, HANDLE _interface, const char* _filename );
        ~Win32ReadFile();
        
    public:
        void Seek( uint32 _pos )
        {
            Win32FileBase::Seek(_pos);
        }
        
        uint32 Tell()
        {
            return Win32FileBase::Tell();
        }
        
        uint32 Size() const
        {
            return Win32FileBase::Size();
        }
        
        uint32 Read( byte* _buffer, uint32 _count );

    private:
        void Dispose();

    };
}   // namespace nane

#endif  // NANE_WIN32READFILE__H
